perm filename TSTRUN.PAS[S1,ALS] blob sn#405686 filedate 1978-12-27 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	(*PROGRAM HEADER PAGE*)
C00005 00003	program tstrun (input, output, file0, file1)
C00007 ENDMK
C⊗;
(*PROGRAM HEADER PAGE*)

(*PAS10 OPTIONS*) (* D+,R32,S1300*)			(*X10S1*)

(*							     DEFAULT

D+	DEBUG AND POSTMORTEM DUMP				-
E+	EXTERNAL CALLS TO LEVEL 1 PROCEDURES ALLOWED		-
Fn	FILE OPTION						1
I+	FORTRAN I/O IN EXTERNAL FORTRAN SUBROUTINES		-
L+	OBJECT LISTING						-
Rn	SIZE OF LOW-SEGMENT				(SEE PAS10 MANUAL)
Sn	MAX INSTRUCTIONS PER STATEMENT			       1000
T+	RUNTIME CHECK						+
U+	72 COLUMN FORMAT					-
Xn	HIGHEST REGISTER FOR PARAMETERS				6
*)

(*SLAC PCPASC OPTIONS*) (* B+,D+,M-*)

(*							     DEFAULT

A+	GENERATE 370 OBJECT MODULE				-
A-	GENERATE 370 ASSEMBLY MODULE
B+	BOUNDS CHECKING, BUT ALLOW 'BIG' CHARACTERS		-
C+	EMIT PCODE						+
D+	RUNTIME CHECKING OF POINTER, INDEX, SUBRANGE VALUES	-
E+	FILE IS IN EBCDIC CHARACTER SET				-
F+	SAVE FPR'S ON PROCEDURE/FUNCTION ENTRY			+
K+	ENABLE STATEMENT EXECUTION COUNTING			-
L+	LIST SOURCE PROGRAM					+
M+	72 COLUMN FORMAT					+
P+	DOUBLE-WORD BOUNDARY ALIGNMENT				-
S+	SAVE GPR'S ON PROCEDURE/FUNCTION ENTRY			+
T+	PRINT SYMBOL TABLES (FOR POST-PROCESSOR)		-
U+	GET STATISTICS?? 2ND PARAMETER TO PCODE BGN INSTR.	-
V+	?? 3RD PCODE BGN INSTRUCTION PARAMETER			-
X+	USE ACTUAL PROCEDURE NAMES FOR EXTERNAL REFERENCES	-
X-	GENERATE UNIQUE 8-CHAR NAMES FOR EXTERNAL REFERENCES
*)

(*S1 PCPASC OPTION DIFFERENCES*) (*$A+,B+,D+,L-,M120*)	(*X10S1*)



(*							     DEFAULT

A+	GENERATE S1 ASSEMBLY MODULE				-
A-	GENERATE S1 OBJECT MODULE
*)

(* SLAC/PDP-10 TRANSPORT DEPENDENCIES FLAGGED WITH "XSL10" *)
(* PDP-10/S-1 TRANSPORT DEPENDENCIES FLAGGED WITH "X10S1" *)
program tstrun (input, output, file0, file1);

type
  rec = record int: integer end;

var
  i,j,k,t1,t2,theta: integer;
  r,x,y,z: real;
  c: char;
  a: packed array[-10..10, -10..10] of char;
  file0, file1: packed file of char;
  p1, p2, p3, p4: ↑rec;

begin
  t1:=clock(1);
  reset(input);
  reset(file0);
  rewrite(output);
  rewrite(file1);
  for i:=-10 to 10 do
    for j:=-10 to 10 do
      a[i,j]:=' ';
  for theta:=-31 to 31 do
    begin
    r:=theta/10.0;
    x:=sin(r);
    y:=cos(r);
    z:=arctan(x/y);
    if abs(z-r) > 0.1E-6
      then writeln('sin(',r,')=',x,',cos(',r,')=',y,',arctan=',z);
    i:=trunc((10.0*x)+0.5);
    j:=trunc((10.0*y)+0.5);
    if (i>=-10)and(i<=10)and(j>=-10)and(j<=10)
      then a[i,j]:='*'
      else writeln('not in range: r=',r,',x=',x,',y=',y,',i=',i,',j=',j);
    end;
  write('circle',1,5.0);
  writeln;
  for i:=-10 to 10 do
    writeln(a[i]);
  new(p1);
  mark(p2);
  new(p3);
  release(p2);
  new(p4);
  if p4 <> p3
    then writeln('new and dispose don''t work')
    else writeln('new and dispose ok');
  output↑:= '\'; put(output);
  writeln(' tested that put backslash works');
  t2:=clock(1);
  write(file1,'we took');
  writeln(file1,t2-t1);
  exit(5);
  end.